package xx.services.management.inter;

import javax.ws.rs.FormParam;
import javax.ws.rs.PathParam;

/**
 * 后台管理页面服务接口
 * 
 * @Path (Constants.RESTFUL_ROOT_PATH + "/management/page")
 * @author chenxiang 2010-12-19
 * 
 */
public interface IPageInterface
{
    /**
     * 增加一个新页面
     * 
     * @POST
     * @author chenxiang 2010-12-19
     * @param keyword-@FormParam("keyword")
     *            页面唯一关键字
     * @param title-@FormParam("title")
     *            页面标题
     * @param content-@FormParam("content")
     *            页面内容
     * @param url-@FormParam("url")
     *            页面对应的URL地址，当content地址存在时，URL无效
     * @param description-@FormParam("description")
     *            页面描述
     * @return 新增的页面实体
     */
    public String add(@FormParam("keyword")
    String keyword, @FormParam("title")
    String title, @FormParam("content")
    String content, @FormParam("url")
    String url, @FormParam("description")
    String description);

    /**
     * 修改后台管理页面
     * 
     * @PUT
     * @Path ("/{page_id}")
     * @author chenxiang 2010-12-19
     * @param pageId-@FormParam("page_id")
     *            页面ID
     * @param keyword-@FormParam("keyword")
     *            页面唯一关键字
     * @param title-@FormParam("title")
     *            页面标题
     * @param content-@FormParam("content")
     *            页面内容
     * @param url-@FormParam("url")
     *            页面对应的URL地址，当content地址存在时，URL无效
     * @param description-@FormParam("description")
     *            页面描述
     * @return 新页面实体
     */
    public String modify(@FormParam("page_id")
    long pageId, @FormParam("keyword")
    String keyword, @FormParam("title")
    String title, @FormParam("content")
    String content, @FormParam("url")
    String url, @FormParam("description")
    String description);

    /**
     * 删除后台管理页面
     * 
     * @DELETE
     * @Path ("/{page_id}")
     * @author chenxiang 2010-12-19
     * @param pageId-@PathParam("page_id")
     *            后台页面ID，多个ID用“_”隔开
     * @return
     */
    public String delete(@PathParam("page_id")
    long pageId);

    /**
     * 获取所有后台管理页面列表
     * 
     * @GET
     * @author chenxiang 2010-12-19
     * @return 后台管理页面列表
     */
    public String gets();

    /**
     * 根据页面关键字来获取单个页面详细信息
     * 
     * @GET
     * @Path ("/{keyword: [a-zA-Z0-9].*}")
     * @author chenxiang 2010-12-19
     * @param keyword-@PathParam("keyword")
     *            页面关键字
     * @return 单个页面实体
     */
    public String getKey(@PathParam("keyword")
    String keyword);

    /**
     * 根据页面ID来获取单个页面详细信息
     * 
     * @GET
     * @Path ("/{page_id: \\d+}")
     * @author chenxiang 2010-12-19
     * @param pageId-@PathParam("page_id")
     *            页面ID
     * @return 单个页面实体
     */
    public String getId(@PathParam("page_id")
    long pageId);
}
